package org.test.beansearcher;

import com.ejlchina.searcher.MapSearcher;
import com.ejlchina.searcher.SearchResult;
import com.ejlchina.searcher.util.MapUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.Map;

/**
 * 测试 bean-searcher 跨表过滤查询
 *
 * @author wanglei
 * @date 2021/11/11
 * */
@RestController
@RequestMapping("user")
public class UserController {

    // 注入检索器（由 bean-searcher-boot-starter提供）
    @Resource
    private MapSearcher mapSearcher;

    /**
     * 用户检索
     *
     * @author wanglei
     * @date 2021/11/11
     * */
    @GetMapping("index")
    public SearchResult<Map<String, Object>> index(HttpServletRequest request){
        /*
        * MapUtils是Bean Searcher提供的一个工具类，MapUtils.flat(request.getParameterMap())
        * 只是为了把前端传来的请求参数统一收集起来，然后剩下的，就全部交给MapSearcher检索器了
        * */
        return mapSearcher.search(User.class, MapUtils.flat(request.getParameterMap()));
    }
}
